package com.zzy.jdateutil;
import org.junit.Test;

import jodd.datetime.JDateTime; 
 
/**
 * JODD中的时间操作类 
 * @author DJZHOU
 *
 */ 
public class JDateTimeUtil { 
    
    @Test 
    public void testConstructor() 
    { 
        /*
         * 构造函数的使用
         */ 
        JDateTime jdt = new JDateTime();        // set current date and time 
        jdt = new JDateTime(2012, 12, 21);      // set 21st December 2012, midnight 
        jdt = new JDateTime(System.currentTimeMillis()); 
        jdt = new JDateTime(2012, 12, 21, 11, 54, 22, 124);  // set 21st December 2012, 11:54:22.124 
        jdt = new JDateTime("2012-12-21 11:54:22.124");     //new 一个JDateTime
        
        jdt = new JDateTime("2012-12-21 11:54:22","YYYY-MM-DD hh:mm:ss");     //new 一个JDateTime
        jdt = new JDateTime("12/21/2012", "MM/DD/YYYY");    // set 21st December 2012, midnight 
        jdt = new JDateTime("12-21", "MM-DD");    // set 21st December 2012, midnight 
        
        System.out.println(jdt.toString("YYYY年MM月DD日")) ; 
        System.out.println(jdt.toString("MM月DD日")) ; 
    } 
     
    @Test 
    public void testSet() 
    { 
        JDateTime jdt = new JDateTime();        // set current date and time 
        /*
         * set方法的使用:设定日期时间
         */ 
        jdt.set(2012, 12, 21, 11, 54, 22, 124);     // set 21st December 2012, 11:54:22.124 
        jdt.set(2012, 12, 21);                      // set 21st December 2012, midnight 
        
        //设置日期
        jdt.setDate(2012, 12, 21);                  // change date to 21st December 2012, do not change te time 
        
        jdt.setCurrentTime();                       // set current date and time 
        jdt.setYear(1973);                          // change the year 
        jdt.setHour(22); // change the hour 
        
        //设置时间
        jdt.setTime(18, 00, 12, 853);    
    } 
     
    @Test 
    public void testGet() 
    { 
        JDateTime jdt = new JDateTime();        // set current date and time 
        /*
         * get方法的使用:读取日期和时间
         */ 
        System.out.println(jdt.getDayOfMonth()) ;//日
        System.out.println(jdt.getMonth()) ;   //月份
        System.out.println(jdt.getYear()) ;   //年份
        
        System.out.println(jdt.getDateTimeStamp());//获取当前时间 
        System.out.println(jdt.getJulianDate()); //距离格林威治时间公元前 4713年 1月1日 星期一正午12点有多少个整数天
      
        System.out.println(jdt.getDayOfWeek()) ;   //星期一
        System.out.println(jdt.getDayOfYear()) ;   //第326天
       
        //System.out.println(jdt.getEra()) ; 
        System.out.println(jdt.getFirstDayOfWeek()) ;   //星期一--1    星期天----7
        System.out.println(jdt.getFormat()) ; 
    } 
     
    @Test 
    public void testAdd() 
    { 
        JDateTime jdt = new JDateTime();        // set current date and time 
        jdt.add(1, 2, 3, 4, 5, 6, 7);    // add 1 year, 2 months, 3 days, 4 hours... 
        jdt.add(4, 2, 0);           // add 4 years and 2 months 
        jdt.addMonth(-120);         // go back 120 months 
        jdt.subYear(1);             // go back one year 
        jdt.addHour(1234);          // add 1234 hours 
    } 
     
    @Test 
    public void testAdd2() 
    { 
        JDateTime jdt = new JDateTime() ; 
        System.out.println(jdt.toString("YYYY-MM-DD hh:mm:ss")) ; 
        jdt.addDay(-20) ; 
        System.out.println(jdt.toString("YYYY-MM-DD hh:mm:ss")) ; 
        jdt.addDay(10, true) ; 
        System.out.println(jdt.toString("YYYY-MM-DD hh:mm:ss")) ; 
        jdt.addYear(1); 
        System.out.println(jdt.toString("YYYY-MM-DD hh:mm:ss")) ; 
    } 
     
    @Test 
    public void testFormat() 
    { 
        JDateTime jdt = new JDateTime();        // set current date and time 
        /**
         * 转换说明
            YYYY    年
            MM      月
            DD      日
            D       一周中的第几天 从周一算起
            MML     月,长型
            MMS     月,短行
            DL      一周中的第几天 长型 从周一算起
            DS      一周中的第几天 短型 从周一算起
            hh      小时
            mm      分钟
            ss      秒
            mss     毫秒
            DDD     一年中的第几天
            WW      一年中的第几周
            WWW     一年中的第几周并用W标识
            W       一个月中的第几周
            E       年代,公元前还是公元后
            TZL     时间长型
            TZS     时间短型
         * 
         */ 
        
        
        //转换为date
        System.out.println(jdt.convertToDate()) ; 
        
      //转换成字符串   这里hh是24小时 ,simpleDateFormat中   hh为12消失 HH为24小时
        System.out.println(jdt.toString("YYYY-MM-DD hh:mm:ss"));
        System.out.println(jdt.toString("YYYY-MM-DD 00:00:00"));
        System.out.println(jdt.toString("YYYY")) ; 
    } 
} 
